IO Framework: use standard errno codes as return values
authorJuan Castillo <[email protected]>
Thu, 1 Oct 2015 16:55:11 +0000 (17:55 +0100)
committerJuan Castillo <[email protected]>
Fri, 23 Oct 2015 15:57:52 +0000 (16:57 +0100)
This patch redefines the values of IO_FAIL, IO_NOT_SUPPORTED and
IO_RESOURCES_EXHAUSTED to match the corresponding definitions in
errno.h:

    #define IO_FAIL                     (-ENOENT)
    #define IO_NOT_SUPPORTED            (-ENODEV)
    #define IO_RESOURCES_EXHAUSTED      (-ENOMEM)

NOTE: please note that the IO_FAIL, IO_NOT_SUPPORTED and
IO_RESOURCES_EXHAUSTED definitions are considered deprecated
and their usage should be avoided. Callers should rely on errno.h
definitions when checking the return values of IO functions.

Change-Id: Ic8491aa43384b6ee44951ebfc053a3ded16a80be

docs/porting-guide.md
include/drivers/io/io_storage.h

index c369844ce803da9a4414fbf5355e4a210feaa3b7..db6038a41a159d71c06b2276d4f7957592d864ee 100644 (file)
@@ -358,13 +358,12 @@ must also be defined:
 
     Defines the maximum number of registered IO devices. Attempting to register
     more devices than this value using `io_register_device()` will fail with
-    IO_RESOURCES_EXHAUSTED.
+    -ENOMEM.
 
 *   **#define : MAX_IO_HANDLES**
 
     Defines the maximum number of open IO handles. Attempting to open more IO
-    entities than this value using `io_open()` will fail with
-    IO_RESOURCES_EXHAUSTED.
+    entities than this value using `io_open()` will fail with -ENOMEM.
 
 If the platform needs to allocate data within the per-cpu data framework in
 BL3-1, it should define the following macro. Currently this is only required if
index e98dcd04eb970814ef9eb0367c207333f052df04..4c3526ef10b2d7f4d3ece2caee75409cd3b2b532 100644 (file)
@@ -31,6 +31,7 @@
 #ifndef __IO_H__
 #define __IO_H__
 
+#include <errno.h>
 #include <stdint.h>
 #include <stdio.h> /* For ssize_t */
 #include <uuid.h>
@@ -88,11 +89,13 @@ typedef struct io_block_spec {
 #define IO_MODE_RW     (1 << 1)
 
 
-/* Return codes reported by 'io_*' APIs */
+/* Return codes reported by 'io_*' APIs.
+ * IMPORTANT: these definitions are deprecated. Callers should use standard
+ * errno definitions when checking the return value of io_* APIs. */
 #define IO_SUCCESS             (0)
-#define IO_FAIL                        (-1)
-#define IO_NOT_SUPPORTED       (-2)
-#define IO_RESOURCES_EXHAUSTED (-3)
+#define IO_FAIL                        (-ENOENT)
+#define IO_NOT_SUPPORTED       (-ENODEV)
+#define IO_RESOURCES_EXHAUSTED (-ENOMEM)
 
 
 /* Open a connection to a device */